package com.css.fxfzxczh.modules.disasterSituationDataManage.baseDataManage.param;


import com.css.fxfzxczh.modules.disasterSituationDataManage.baseDataManage.page.BasePageParam;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

@ApiModel("数据版本管理分页查询接口参数")
@SuperBuilder
@Data
@NoArgsConstructor
@AllArgsConstructor
public class SysDataVersionPageParam extends BasePageParam {
    @ApiModelProperty(value = "版本时间开始时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date versionStartTime; // 版本时间开始时间

    @ApiModelProperty(value = "版本时间结束时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date versionEndTime; // 版本时间结束时间

    @ApiModelProperty(value = "上传时间开始时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date uploadStartTime; // 上传时间开始时间

    @ApiModelProperty(value = "上传时间结束时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date uploadEndTime; // 上传时间结束时间

    @ApiModelProperty(value = "版本号")
    private String versionCode; // 版本号

    @ApiModelProperty(value = "数据名称")
    private String dataName; // 数据名称

    @ApiModelProperty(value = "二级数据类别id")
    private String dataType; // 二级数据类别id

    @ApiModelProperty(value = "一级数据类别Code")
    private String dataTypeCode;
    @ApiModelProperty(value = "三级数据类别Code列表 用,分隔")
    private String typeCode;
    private String typeLevel1Code;
    private String typeLevel2Code;
    private String typeLevel3Code;

    /**
     * 三级数据类别（数据表id）
     */
    @ApiModelProperty(value = "三级数据类别（数据表id）")
    private String dataType2;

    /**
     * 数据级别 1-国家级， 2-省级
     */
    @ApiModelProperty(value = "数据级别 1-国家级， 2-省级")
    private Integer dataRangeCountry;

    /**
     * 版本范围省id
     */
    @ApiModelProperty(value = "版本范围省id")
    private String dataRangeProvince;

    /**
     * 版本范围市id
     */
    @ApiModelProperty(value = "版本范围市id")
    private String dataRangeCity;

    /**
     * 版本范围县区id
     */
    @ApiModelProperty("版本范围县区id")
    private String dataRangeArea;

    /**
     * 版本说明
     */
    @ApiModelProperty("版本说明")
    private String versionDesc;

    /**
     * 查询国家级-某个省数据时，是否包含全国级别的数据 0（不包含，默认），1（包含）
     */
    @ApiModelProperty("查询国家级-某个省数据时，是否包含全国级别的数据 0（不包含，默认），1（包含）")
    private int hasNationwide = 0;

    @ApiModelProperty("上传人用户名")
    private String uploadUsername;

    @ApiModelProperty("上传人用户ids 用','分隔")
    private String uploadUserIds;

    private boolean isProvinceUser = false;
    private String userProvinceId;

    /**
     * 清空数据范围
     *
     * @param sysDataVersionPageParam
     */
    public static void dataRangeSetNull(SysDataVersionPageParam sysDataVersionPageParam) {
        sysDataVersionPageParam.setDataRangeCountry(null);
        sysDataVersionPageParam.setDataRangeArea(null);
        sysDataVersionPageParam.setDataRangeCity(null);
        sysDataVersionPageParam.setDataRangeProvince(null);
    }
}
